package com.shiroha.notification.config;

import com.shiroha.common.event.ServiceEventPublisher;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.web.client.RestTemplate;

@Configuration
@EnableConfigurationProperties(EmailProperties.class)
public class AppConfig {

    @Bean
    @Primary
    @LoadBalanced
    public RestTemplate loadBalancedRestTemplate() {
        return new RestTemplate();
    }

    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }

    @Bean
    public ServiceEventPublisher serviceEventPublisher(ApplicationEventPublisher applicationEventPublisher) {
        return new ServiceEventPublisher(applicationEventPublisher);
    }
}